using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Entidades;
using Negocio.Controladora; 

namespace VtasMkt.Marketing.ServiciosMkt
{
    public partial class frmServicioPaquete : Form
    {

        #region Variables y constantes

        private const int COL_ID = 0;
        DataTable dtImp = new DataTable();

        #endregion

        public frmServicioPaquete()
        {
            InitializeComponent();
        }

        private void frmServicioPaquete_Load(object sender, EventArgs e)
        {
            MostrarInfoGrilla();
            
        }

        #region Metodos privados

        // Muestra la informacion en la grilla del formulario
        private void MostrarInfoGrilla()
        {
            try
            {
                // Obtiene y prepara el filtro
                String pCodigoPaquete;
                pCodigoPaquete = this.txtCodigoPaquete.Text;
                                
                // Obtiene la informacion y la carga a la grilla
                Negocio.Controladora.ActualizarServicioPaquete oServicioPaquete =
                new Negocio.Controladora.ActualizarServicioPaquete();
                DataTable dtInfo = oServicioPaquete.ListaServicioPaquete(pCodigoPaquete);
                dgvMain.DataSource = dtInfo;
                dtImp = dtInfo;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, this.Text);
            }
        }


        #endregion

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            Entidades.ServicioPorPaquete oServicioPaquete = new Entidades.ServicioPorPaquete();
            VtasMkt.Marketing.ServiciosMkt.frmActualizarServicioPaquete oServicioPaqueteAct = new VtasMkt.Marketing.ServiciosMkt.frmActualizarServicioPaquete(oServicioPaquete);
            oServicioPaqueteAct.Tag = AccionMnt.NuevoRegistro;
            oServicioPaqueteAct.ShowDialog();
            MostrarInfoGrilla();
        }

        private void btnEditar_Click(object sender, EventArgs e)
        {
            
            if (dgvMain.SelectedRows.Count > 0)
            {
                Entidades.ServicioPorPaquete oServicioPaquete = new Entidades.ServicioPorPaquete();
                oServicioPaquete.CodigoPaquete = (int)(this.dgvMain.SelectedRows[0].Cells[0].Value);
                VtasMkt.Marketing.ServiciosMkt.frmActualizarServicioPaquete oServicioPaqueteAct = new VtasMkt.Marketing.ServiciosMkt.frmActualizarServicioPaquete(oServicioPaquete);
                oServicioPaqueteAct.Tag = AccionMnt.EditarRegistro;
                oServicioPaqueteAct.ShowDialog();
                MostrarInfoGrilla();
            }
            else
            {
                MessageBox.Show("Se debe selecionar un registro.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            
            if (dgvMain.SelectedRows.Count > 0)
            {
                Entidades.ServicioPorPaquete oServicioPaquete = new Entidades.ServicioPorPaquete();
                oServicioPaquete.CodigoPaquete = (int)(this.dgvMain.SelectedRows[0].Cells[0].Value);
                oServicioPaquete.CodigoServicio = (int)(this.dgvMain.SelectedRows[0].Cells[2].Value);
                VtasMkt.Marketing.ServiciosMkt.frmActualizarServicioPaquete oServicioPaqueteAct = new VtasMkt.Marketing.ServiciosMkt.frmActualizarServicioPaquete(oServicioPaquete);
                oServicioPaqueteAct.Tag = AccionMnt.EliminarRegistro;
                oServicioPaqueteAct.ShowDialog();
                MostrarInfoGrilla();
            }
            else
            {
                MessageBox.Show("Se debe selecionar un registro.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }



        }

        private void btnCerrar_Click(object sender, EventArgs e)
        {
            this.Close(); 
        }

        private void txtCodigoPaquete_KeyPress(object sender, KeyPressEventArgs e)
        {
            VtasMkt.General.RutinasGenericas rutGen = new VtasMkt.General.RutinasGenericas();
            short KeyAscii = (short)(rutGen.Asc(e.KeyChar));
            if (rutGen.SoloNumeros(KeyAscii) == true)
            {
                e.Handled = true;
            }
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            ActualizarServicioPaquete oServicioPaquete = new ActualizarServicioPaquete();
            oServicioPaquete.ListaServicioPaquete(this.txtCodigoPaquete.Text);
            MostrarInfoGrilla();
        }

        private void btnImprimir_Click(object sender, EventArgs e)
        {
            // Prepara el DataSet para la vista previa
            VtasMkt.Marketing.ServicioPaquete.dsServicioPaquete dsServicioPaquete = new VtasMkt.Marketing.ServicioPaquete.dsServicioPaquete();
            dsServicioPaquete.dtServicioPaquete.Merge(dtImp);

            // Muestra el formulario de vista previa con el reporte
            VtasMkt.General.frmVerReporte verRptWin = new VtasMkt.General.frmVerReporte(dsServicioPaquete);
            verRptWin.MdiParent = frmMain.ActiveForm;
            verRptWin.Show();
        }
    }
}